"\\\"不是字符串常量吗?

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:56:03
如题。请详细说明哦。
我也认为是\\。但是是卷子上的题目。答案说它不是字符串常量。

long周说的很有道理啊。不是字符串常量。但是我又发现一个问题。
#include "iostream.h"
void main()
{
char *a="\\\"";
cout<<*a;
}
这样的结果是\。而不是\"。这是为什么呢。

哈哈。很明白了。谢谢大家。但是就原题的话。还是把分数给long周了。

#include<stdio.h>

int main(void)
{
char *ptc = "\\\";

return 0;
}
这样的话声明都是不完整的。前两个\是在一起的后一个\和"是在一起的。所以声明中少了个"。由于\是转义字符所以后面的"不起字符串结束符的作用;

听不懂

就是指两斜杠 \\,因为"\"是转义字符了。

补充问题:*a是一个字符,当然只能输出"\"了,输出字符串要用cout<<a;

我发现了。
你那个char *a="\\\""; 的意思是吧"\\\""的首地址给了a,如果你学过指针和数组就知道数组("\\\""是一个字符数组)"\\\""的首地址就是数组第一个的地址,所以*a就是该数组第一个字符,也就是‘\’
也许我说的不太清楚,你可以试试:
char *a="abc";
输出的结果是a。

这个应该不算是常量吧
是常量的话 应该是 const char *a="\\\"";

而且在我的编译器上的确是输出\"的
楼主你看看有没有弄错些什么。